﻿.: Changed (USA addresses given) :.
"partial_game_loop"
0x6C60  70006060	main game loop  [Only detects a subsection]
	Optional.  Removes unnecessary explicit framebuffer init; some of this memory can be used as a safe iQue EEPROM buffer.
0x7530	70006930

"ctrl_rumble_detect"
0xD938  7000CD38	V0 = errors setting SI write controller slot cmd for port A2 using queue A0, controller manager A1 if Rumble Pak inserted
0xDAA0  7000CEA0

"initialize_system"
0xDC80  7000D080	initialize system
0xDF20  7000D320

"create_callback"
0xE850  7000DC50	create callback for event A0, sending msg A2 to queue A1
	Semi-optional, dependant on "partial_exception_handler".  Bugfix from later SDK to test if NMI occurred before a callback to handle the event is registered, re-raising the message.
0xE8C0  7000DCC0

"VI_settings"
0xEC60  7000E060	use VI settings at A0
	Semi-optional when "VI_update" also used.  iQue titles only masked settings here, but they also didn't push settings to the VI manually.
0xECD0  7000E0D0

"partial_exception_handler"
0x10DA0  700101A0	general exception handler  [Only detects a subsection]
	Adds hook to implement MI hardware interrupt handlers.
	Adds support for secure kernel function call on a timeout after an NMI occurs.  This prevents RCP from locking.
0x11680  70010A80

"ctrl_presence_status"
0x156F8  70014AF8	copy result of SI status request to A1, setting presence flags to A0 {80067CA0}
0x157C8  70014BC8

"ctrl_status_all"
0x158C0  70014CC0	V0 = errors sending SI status commands (0) using queue A0, creating if necessary {80067CA0}
	One word only.  Removes "last used SI cmd" test.
0x15944  70014D44

"ctrl_read_all"
0x15970  70014D70	V0 = errors sending SI read controller command (1) using queue A0, creating if necessary {80067CA0}
	One word only.  Removes "last used SI cmd" test.
"ctrl_copy_input"
0x15A34  70014E34	copy current controller input to table A0
0x15ADC  70014EDC

"EEPROM_type"
0x15BD0  70014FD0	V0 = detected EEPROM type using queue A0; {0:None, 1:4k, 2:16k} (0x48)
	Semi-optional.  Rewritten to match later SDK: return 2 if 16k found, 1 if 4k, 0 otherwise.
"EEPROM_read"
0x15C40  70015040	V0 = errors reading block at EEPROM addr A1 to A2 using queue A0
"EEPROM_fill_read_cmd"
0x15E30  70015230	fill buffer 80067D30 w/ SI read EEPROM command (4) for address A0
	REMOVED
"EEPROM_write"
0x15F40  70015340	V0 = errors writing A2 to block at EEPROM addr A1 using queue A0
"EEPROM_fill_write_cmd"
0x160F0  700154F0	fill buffer 80067D30 w/ SI write EEPROM command (5) for address A0
	REMOVED
"EEPROM_status"
0x161FC  700155FC	V0 = errors reading EEPROM status to A1 using queue A0
0x16420  70015820

0x1693C  70015D3C	copy result of SI status request to A1, setting presence flags to A0 {80067D70}
0x16A10  70015E10

"ctrl_data_crc"
0x16C30  70016030	V0 = slot device data crc for 0x20 bytes at A0
	Optional.  This updated version adds a second entrypoint to use with a wider range of serial devices--and it's smaller.
"pak_write_block"
0x16D00  70016100	V0 = errors writing A3 to slot address A2 of controller A1 using queue A0
"pak_fill_write_cmd"
0x16F30  70016330	generate PIFram command: request write data at A2 to block A1 of controller A0's slot
	REMOVED
"pak_read_block"
0x170B0  700164B0	V0 = errors reading from slot address A2 of controller A1 to A3 using queue A0
"pak_fill_read_cmd"
0x172F4  700166F4	generate PIFram command: request read of block A1 from controller A0's slot
	REMOVED
0x17460  70016860

"partial_VI_update"
0x19770  70018B70	pushes VI settings to the registers, needs iQue flag masking (at least at boot)
	Only detects a subsection to remain compatible with 640i patch.
0x19AD0  70018ED0

"PI_thread"
0x1F210  7001E610	Thread: PI manager
0x1F5C0  7001E9C0


.: Conditional :.
"init_rate_multipliers"
0x35970  7F000E40	initialize rate multipliers	[anim rate adjust option]
	Adjusts all actor animation rates except in replays.
0x359E8  7F000EB8


.: Omitted or partial support :.
"EDMA"
0x1F130  7001E530	EDMA handler: read or write (A1) SP+10 bytes b/w hardware A2 & RDRAM A3 using EPI settings A0
	Partial support.  iQue extensions are provided, but does not handle direct IO when reading from last halfword or first halfword of page.
0x1F210  7001E610

"SI_DMA"
0x16AD0  70015ED0	V0 = errors reading or writing (A0) 0x40 bytes b/w SI & rdram A1
	Omitted.  Unnecessary with hackit.sys, including will only cause trouble.
0x16B80  70015F80

  All other provided samples only aid function detection.

-Zoinkity
